#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED
struct operator_node
{
    char symbol;
    int priority;
    struct operator_node *prev, *next;
};
typedef struct operator_node Onode;
struct operator_stack
{
    Onode *first;
    Onode *last;
};
typedef struct operator_stack OPERATOR_STACK;
struct number_node
{
    float number;
    struct number_node *prev, *next;
};
typedef struct number_node Nnode;
struct number_stack
{
    Nnode *first;
    Nnode *last;
};
typedef struct number_stack NUMBER_STACK;
void generate_polish_notation();
void push_operator(char, int, OPERATOR_STACK *);
char pop_operator(OPERATOR_STACK *);
void evaluate_polish_expression();
void push_number(int, NUMBER_STACK *);
void print_number_stack(NUMBER_STACK);
void do_operation(char);
int pop_number(NUMBER_STACK *);
#endif // FUNCTIONS_H_INCLUDED
